/*
 * OracleBdParser.java
 *
 */

package es.team.tareas.bd;

import java.sql.Connection;
import java.sql.SQLException;
import oracle.sql.Datum;

/**
 * Interface que define los m�todos necesarios para transformar un objeto
 * entre el tipo Java y el Oracle.
 * @author Victor Gimeno
 * @version 1.0
 */
public interface OracleBdParser {
    
    /**
     * Método que transforma el objeto a un tipo Oracle de BBDD.
     * @param con Objeto con la conexion a la bbdd para hacer un lookup del objeto.
     * @return Supertipo de los objetos Oracle en Java
     * @throws SQLException excepcion de base de datos
     */
    Datum toSqlOracleType( Connection con ) throws SQLException;
    
    /**
     * Método que transforma el objeto a un tipo Oracle de BBDD.
     * @param oracleObj Objeto de tipo Oracle que debe transformarse
     * @throws SQLException excepcion de base de datos
     */
    void fromSqlOracleType( Datum oracleObj ) throws SQLException;
    
    /**
     * Método que devuelve el Nombre del tipo de Objeto Oracle declarado en BBDD.
     * @return Nombre del Objeto declaro en BBDD.
     */
    String getSqlOracleTypeName();
}
